﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


namespace Atentis_Connector
{
	interface IStrategy
	{
		/// <summary>
		/// Кодовое название бумаги
		/// </summary>
		string SecCode { get; set; }

		/// <summary>
		/// Название стратегии
		/// </summary>
		string StrategyName { get; }

		/// <summary>
		/// Событие - сигнал на продажу
		/// </summary>
		event EventHandler<AtentisConnectorEventArgs> NeedSell;

		/// <summary>
		/// Событие - сигнал на покупку
		/// </summary>
		event EventHandler<AtentisConnectorEventArgs> NeedBuy;

		/// <summary>
		/// Закрыть продажу
		/// </summary>
		event EventHandler<AtentisConnectorEventArgs> CloseSell;

		/// <summary>
		/// Закрыть покупку
		/// </summary>
		event EventHandler<AtentisConnectorEventArgs> CloseBuy;

		/// <summary>
		/// Инициализация истории
		/// </summary>
		/// <param name="candles">Список свечей</param>
		void SetHistory(List<Candle> candles);

		/// <summary>
		/// Добавление новой свечи
		/// </summary>
		/// <param name="candle">Свеча</param>
		void NewCandle(Candle candle);

		/// <summary>
		/// Добавление новой сделки
		/// </summary>
		/// <param name="trade">Сделка</param>
		void NewTrade(WrapperTrades trade);

		/// <summary>
		/// Настройки стратегии
		/// </summary>
		StrategySettings StrategySettings { get; set; }

        void OnSellOrderComplete(int vol, double price);
        void OnBuyOrderComplete(int vol, double price);
	}
}
